Menu
Home
Explore
People
Places
Arts
History
Plants & Animals
Science
Life & Culture
Technology
Reference.org
Sign In
Science
Mathematics
Theoretical computer science
Theoretical computer science
Algorithms
Automata theory
Complexity theory
Data structures and types
Abstract data type
Mathematical model for data types
Abstract machine
Theoretical computer used for defining a model of computation
Algorithm
Sequence of operations for a task
Analysis of algorithms
Study of resources used by an algorithm
Array (data structure)
Type of data structure
Associative array
Abstract data type that associates keys with values
Big O notation
Notation describing limiting behavior
Binary search
Search algorithm finding the position of a target value within a sorted array
Binary search tree
Data structure in tree form sorted for fast lookup
Blum axioms
Axioms in computational complexity theory
Blum's speedup theorem
Rules out assigning to arbitrary functions their computational complexity
Boolean satisfiability problem
Problem of determining if a Boolean formula could be made true
Breadth-first search
Algorithm to search the nodes of a graph
Brute-force search
Problem-solving technique and algorithmic paradigm
B-tree
A self-balancing, tree-based data structure, that allows read/write access in logarithmic time
Bubble sort
Simple comparison sorting algorithm
Bucket sort
Sorting algorithm
Cache replacement policies
Algorithm for caching data
Chain rule for Kolmogorov complexity
Lower bound for size of software program
Chomsky hierarchy
Hierarchy of classes of formal grammars
Computational complexity theory
Study of inherent difficulty of computational problems
Constructible function
Function whose values can be computed in a number of steps or a number of Turing-machine cells of order given by the function itself
Context-free grammar
Type of formal grammar
Data model
An abstract model that organizes elements of data and standardizes how they relate to one another and to real-world entities.
Data structure
Particular way of storing and organizing data in a computer
Depth-first search
Search algorithm
Deterministic algorithm
Type of algorithm in computer science
Divide-and-conquer algorithm
Algorithms which recursively solve subproblems
Formal language
Words whose letters are taken from an alphabet and are well-formed according to a specific set of rules
Gap theorem
There are arbitrarily large computable gaps in the hierarchy of complexity classes
Gnome sort
Sorting algorithm
Graph (abstract data type)
Abstract data type in computer science
Hash table
Associates data values with key values – a lookup table
Heap (data structure)
Computer science data structure
Heapsort
A sorting algorithm which uses the heap data structure
Insertion sort
Sorting algorithm that, at each iteration, inserts the current input element into the suitable position between the already sorted elements
Kolmogorov complexity
Measure of algorithmic complexity
Kolmogorov structure function
Statistical function
Linked list
Data structure which is a linear collection of data elements, called nodes, each pointing to the next node by means of a pointer
Merge sort
A divide and combine sorting algorithm
Nondeterministic Turing machine
Theoretical model of computation
NP (complexity)
Complexity class used to classify decision problems
NP-hardness
Complexity class
P (complexity)
Class of problems solvable in polynomial time
P versus NP problem
Unsolved problem in computer science
Queue (abstract data type)
Abstract data type
Quicksort
A divide and conquer sorting algorithm
Radix sort
Non-comparative integer sorting algorithm
Red–black tree
Self-balancing binary search tree data structure
Search algorithm
Any algorithm which solves the search problem
Selection sort
Sorting algorithm
Shellsort
Sorting algorithm which uses multiple comparison intervals
Sorting algorithm
Algorithm that arranges lists in order
Space complexity
Amount of memory space that an algorithm uses as a function of the input's size
Space hierarchy theorem
Both deterministic and nondeterministic machines can solve more problems given more space
Stack (abstract data type)
Abstract data type
String-searching algorithm
Searches for patterns within strings
Theoretical computer science
Subfield of computer science and mathematics
Theory of computation
Academic subfield of computer science
Time complexity
Estimate of time taken for running an algorithm
Time hierarchy theorem
Given more time, a Turing machine can solve more problems
Tree (abstract data type)
Abstract data type simulating a hierarchical tree structure and represented as a set of linked nodes
Triangular array
Concept in mathematics and computing